import os from '@packages/lib-os';

// 白名单路由，支持正则或者字符串
const whiteRoutes = [
    // // 店铺首页
    // /^\/shop\/\d+/,
];

// 方便测试路由黑名单
const blackRoutes = [
    // 可以辅助白名单
    // '/live/room',
];

/**
 * 是否多域名
 * @return {boolean}
 */
const isMultiHost = () => !/(t|w).weipaitang.com/.test(window.location.hostname);

/**
 * 匹配正则或者字符串
 * @param url
 * @param route
 */
const startsWithOrMatch = (url = '', route) => {
    return typeof route === 'string' ? url.startsWith(route) : route && route.test(url);
};

/**
 * 是否白名单路由
 * @param url
 * @return {boolean}
 */
const isWhiteRoute = (url) => whiteRoutes.some((route) => startsWithOrMatch(url, route));

/**
 * 是否黑名单路由
 * @param url
 * @return {boolean}
 */
const isBlackRoute = (url) => blackRoutes.some((route) => startsWithOrMatch(url, route));

/**
 * 是否测试环境
 * @return {boolean}
 */
const isTestEnv = () => /h5t\./.test(window.location.hostname);

/**
 * 是否微信环境
 * @type {*|boolean}
 */
// eslint-disable-next-line no-unused-vars
const isInWechat = () => os.wechatPhone && !os.xcx;

/**
 * 重定向到weipaitang
 * @param url
 * @param isLoad
 * @param redirect
 */
const redirectToWpt = (url, isLoad = false, redirect = false) => {
    // 解析url
    const { origin, pathname, query: originalQuery } = WPT.Util.urlParse(url);
    // 重定向时移除 jumpToken 属性
    const { jumpToken, ...query } = originalQuery;
    // 主域 origin
    const wptOrigin = `https://${isTestEnv() ? 't' : 'w'}.weipaitang.com`;
    if (redirect) {
        // 当前多域名路由
        const targetUrl = WPT.Util.urlAddQuery(`${origin}${pathname}`, query);

        window.location.replace(
            WPT.Util.urlAddQuery(`${wptOrigin}${pathname}`, {
                ...query,
                targetUrl,
            })
        );
        return;
    }
    const wptHref = WPT.Util.urlAddQuery(`${wptOrigin}${pathname}`, query);
    if (isLoad) {
        window.location.replace(wptHref);
    } else {
        window.location.href = wptHref;
    }
};

export default function matchMultiHostRoute(...args) {
    return undefined;
    // const [url, isLoad] = args;
    // // 非主域名下
    // if (/localhost/i.test(location.href)) {
    //     return undefined;
    // }

    // if (isMultiHost()) {
    //     // 非业务白名单路由
    //     // debug模式除外
    //     if (
    //         WPT.Util.query(url).fr !== 'wpt_front_debug1' &&
    //         (!isWhiteRoute(url) || isBlackRoute(url) || !isInWechat())
    //     ) {
    //         redirectToWpt(url, isLoad || !isInWechat());
    //         return true;
    //     }
    //     // 没有登录则重定向到微拍堂授权
    //     if (!WPT.userinfo.userinfoUri) {
    //         redirectToWpt(url, isLoad, true);
    //         return true;
    //     }
    // }
    // return undefined;
}
